package solicitacaoCompra;
// Generated 21/08/2011 22:49:20 by Hibernate Tools 3.2.1.GA

import compra.Compra;
import descricaoProduto.DescricaoProduto;
import funcionario.Funcionario;
import java.util.List;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * SolicitacaoCompra generated by hbm2java
 */
@Entity
@Table(name = "solicitacao_compra", schema = "public")
public class SolicitacaoCompra implements java.io.Serializable {

    private int idSolicitacaoCompra;
    private DescricaoProduto descricaoProduto;
    private Funcionario objFuncionario;
    private Date dataSolicitacao;
    private Integer qtdProduto;
    private boolean statusSolicitacao;
    private boolean flagComprado = false;
    private List<Compra> objCompra;

    public SolicitacaoCompra() {
    }

    public SolicitacaoCompra(int idSolicitacaoCompra) {
        this.idSolicitacaoCompra = idSolicitacaoCompra;
    }

    public SolicitacaoCompra(int idSolicitacaoCompra, DescricaoProduto descricaoProduto, Funcionario objFuncionario, Date dataSolicitacao, Integer qtdProduto, boolean statusSolicitacao, boolean flagComprado, List<Compra> objCompra) {
        this.idSolicitacaoCompra = idSolicitacaoCompra;
        this.descricaoProduto = descricaoProduto;
        this.dataSolicitacao = dataSolicitacao;
        this.qtdProduto = qtdProduto;
        this.statusSolicitacao = statusSolicitacao;
        this.objCompra = objCompra;
        this.objFuncionario = objFuncionario;
        this.flagComprado = flagComprado;
    }

    @Id
    @Column(name = "id_solicitacao_compra", unique = true, nullable = false)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public int getIdSolicitacaoCompra() {
        return this.idSolicitacaoCompra;
    }

    public void setIdSolicitacaoCompra(int idSolicitacaoCompra) {
        this.idSolicitacaoCompra = idSolicitacaoCompra;
    }

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "id_descricao_produto")
    public DescricaoProduto getDescricaoProduto() {
        return this.descricaoProduto;
    }

    public void setDescricaoProduto(DescricaoProduto descricaoProduto) {
        this.descricaoProduto = descricaoProduto;
    }

    @Temporal(TemporalType.DATE)
    @Column(name = "data_solicitacao", length = 13)
    public Date getDataSolicitacao() {
        return this.dataSolicitacao;
    }

    public void setDataSolicitacao(Date dataSolicitacao) {
        this.dataSolicitacao = dataSolicitacao;
    }

    @Column(name = "status_solicitacao_compra")
    public boolean getStatusSolicitacao() {
        return this.statusSolicitacao;
    }

    public void setStatusSolicitacao(boolean statusSolicitacao) {
        this.statusSolicitacao = statusSolicitacao;
    }
    
    @Column(name = "flag_comprado")
    public boolean getFlagComprado() {
        return this.flagComprado;
    }

    public void setFlagComprado(boolean flagComprado) {
        this.flagComprado = flagComprado;
    }

    

    @Column(name = "qtd_produto")
    public Integer getQtdProduto() {
        return this.qtdProduto;
    }

    public void setQtdProduto(Integer qtdProduto) {
        this.qtdProduto = qtdProduto;
    }
    
    @OneToMany(fetch=FetchType.LAZY)
    @JoinColumn(name="id_solicitacao_compra")
    public List<Compra> getobjCompra() {
        return this.objCompra;
    }

    public void setobjCompra(List<Compra> objCompra) {
        this.objCompra = objCompra;
    }
    
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "id_funcionario")
    public Funcionario getObjFuncionario() {
        return objFuncionario;
    }

    public void setObjFuncionario(Funcionario objFuncionario) {
        this.objFuncionario = objFuncionario;
    }
    
}